/**
 * 
 */
package com.demo.user;

import java.util.List;

import com.demo.redis.JedisClientPool;
import com.jfinal.aop.Inject;
import com.jfinal.kit.JsonKit;
import com.jfinal.plugin.activerecord.Db;
import com.jfinal.plugin.activerecord.Record;

/**
 * @author LMH
 * @version 创建时间：2019年7月1日 上午9:17:31
 */
public class UserService {
	@Inject
	JedisClientPool pool;

	public int add() {
		String sql = "insert into user(name,age) values(?,?)";
		// 插入到数据库
		Db.update(sql, "test", 18);
		// 缓存同步,删除缓存中对应的数据。
		// jedisClient.hdel(key, field);
		return Db.update(sql, "test", 18);
	}

	public String getUserInfo(String key) {
		String sql = "select * from user";
		String userInfo = null;
		// 查询缓存
		userInfo = pool.get(key);
		System.err.println("get-->>" + userInfo);
		if (userInfo == null || userInfo.isEmpty()) {
			System.out.println("redis中无数据,查询mysql数据库");
			// 如果Redis中没有 则查询mysql数据库
			List<Record> userList = Db.find(sql);
			userInfo = JsonKit.toJson(userList);
			// 把结果添加到缓存
			pool.set(key, userInfo);
			System.out.println(pool.get(key));
//			// 设置过期时间(10秒)  即热缓存，给它设一个过期时间（不同步也是可以的）
			pool.expire(key, 10);

		}
		// 如果缓存中有直接响应结果
		return userInfo;
	}

	public static void main(String[] args) {
		UserService userService = new UserService();
		String userInfo = userService.getUserInfo("name2");
		System.out.println(userInfo);
	}
}
